package Controlador;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;

import Archivos.Lectura;//importamos el paquete con la clase que queremos ocupar...

public class PruebaControladora {

	//atributos de la clase...
	static VentanaPrincipal ventana;//me permite poder manejar la ventana principal...
	static ArrayList <String> ColeccionInstrucciones;//me permite poder almacenar las diversas instrucciones que cargue el weon..
	static int tiempo;//permitira poder definir el tiempo de ejecucion de las instrucciones...
	
	//constructor de la clase que me permite poder iniciar los atributos de la clase al momento de instanciar la clase misma...
	public PruebaControladora (){
	
		ventana = new VentanaPrincipal();//instanciamos a la ventana principal de la aplicacion...
		ColeccionInstrucciones = new ArrayList<String>();//instanciamos a la coleccion de String...
		
		//agregamos los diversos oyentes a nuestros widgets...
		ventana.getPanelesEste().getBotoncitos().getColeccionBotones().get(5).addActionListener(new OpcionSalir());//cuando el weon oprima la wea de salir...
		ventana.getPanelesEste().getBotoncitos().getColeccionBotones().get(0).addActionListener(new OpcionCargar());//cuando el weon oprima la wea de cargar...
		ventana.getPanelesEste().getBotoncitos().getColeccionBotones().get(1).addActionListener(new OpcionCodificar());//cuando el saco de pelota oprima la wea de codificar...
		ventana.getPanelesEste().getBotoncitos().getColeccionBotones().get(2).addActionListener(new OpcionTiempo());//cuando el saco de pelota oprima la wea de modificar el tiempo...
		ventana.getPanelesEste().getBotoncitos().getColeccionBotones().get(3).addActionListener(new OpcionRegistrar());//cuando el saco de pelota oprima la wea de modificar el registro...
	}
	
	//tanda de innerclass que me permiten poder generar los diversos oyentes...
	//innerclass que me permite poder cerrar la ventana del programa...
	public static class OpcionSalir implements ActionListener{
		
		public void actionPerformed(ActionEvent e){
			
			//cerramos la ventana del programa...
			ventana.dispose();
		}
	}
	
	//innerclass que me permite poder generar el oyente de cargar un archivo generando una coleccion de  String que contiene las instrucciones y las muestra en el area de texto...
	public static class OpcionCargar implements ActionListener{
		
		public void actionPerformed(ActionEvent e){
			
			Lectura leyendo = new Lectura(ventana.getPanelesEste().getBotoncitos().getColeccionBotones().get(0));
			ColeccionInstrucciones = leyendo.LeerArchivo();
			
			//modificamos el area de texto que contendra las instrucciones...
			for (int i=0; i<ColeccionInstrucciones.size(); i++){
				ventana.getPanelesOeste().getAreas().getInstrucciones().append(ColeccionInstrucciones.get(i));
				ventana.getPanelesOeste().getAreas().getInstrucciones().append("\n");
			}
			//deshabilitamos algunos de los botoncitos medios huecos...
			for (int i=1; i<5; i++)
				ventana.getPanelesEste().getBotoncitos().getColeccionBotones().get(i).setEnabled(true);
			
			ventana.getPanelesEste().getBotoncitos().getColeccionBotones().get(0).setEnabled(false);
		}
	}
	
	//innerclass que me permite poder generar la accion de codificar las instrucciones...
	public static class OpcionCodificar implements ActionListener{
		
		public void actionPerformed(ActionEvent e){
			
			new EdicionInstrucciones();
		}
	}
	
	//innerclass que permite poder generar la accion de modificar el tiempo de las instrucciones...
	public static class OpcionTiempo implements ActionListener{
		
		public void actionPerformed(ActionEvent e){
			
			new ControlTIempo();
		}
	}
	
	//innerclass que permite poder generar la accion de registrar las cuestiones...
	public static class OpcionRegistrar implements ActionListener{
		
		public void actionPerformed(ActionEvent e){
			
			new ControlRegistro();
		}
	}
}	